// 1. Map 是一组键值对的结构
const map1 = new Map([['name', 'zq'],['sex','man']])
console.log(map1); // Map(2) { 'name' => 'zq', 'sex' => 'man' }

// 2.. key 不仅可以是字符串还可以是对象
const obj = {name : 'key'}
const map2 = new Map()
map2.set(obj, {name: 'value'})
console.log(map2) // Map(1) { { name: 'key' } => { name: 'value' } }

// 3.常用语法 set、has、delete、get
const map3 = new Map()
  // 添加key value
  map3.set('name', 'zq') 
  console.log(map3) // Map(1) { 'name' => 'zq' }
  // 检查是否含有key, 有则返回true, 否则返回false
  map3.has('name') // true
  map3.has('sex')  // false
  // 根据key获取value(没有这个key，返回undefined)
  map3.get('name') // zq
  map3.get('sex')  // undefined
  // 删除 指定key的value
  map3.delete('name') // map3 Map(0) {}

// 一个key只能对应一个value，多次对一个key放入value，后面的值会把前面的值覆盖掉
const map4 = new Map()
const obj1 = {name: 'zq'}
map4.set(obj1, '2')
map4.set(obj1, '3')
console.log(map4);  // Map(1) { { a: 1 } => '3' }


